#ifndef BJSIDEBET_H
#define BJSIDEBET_H

class BJHand;

/********************************************************************************************
 * kharmon.  02-14-07.  #16101.
 * This class defines the "sidebet" interface for blackjack variants, initially just for use
 * with Perfect Pairs.  It can be extended as needed for future sidebet based games.
 *
 ********************************************************************************************/

class BJSideBet
{    
public:
    // called after the initial deal to calculate the side bet results 
    virtual void calculateDealResults(char *pcGID, BJHand *phand, int32 nBJBet) = 0;

    // puts the sidebet results into the message buffer to be sent to client.
    virtual void sendResults()   = 0;

    // called when restoring an existing game, to update the client with the sidebet state
    virtual void sendSaveState() = 0;

    // returns side bet amount for indicated blackjack game
    virtual int32 getSideBet(int32 nBJBet) = 0;

    // returns amount won on sidebet for indicated blackjack game
    virtual int32 getSideBetPayout(int32 nBJBet) = 0;

    virtual ~BJSideBet() {};
};



#endif